Image retrieval method and apparatus

ABSTRACT

A plurality of images and image features of each of the plurality of images are stored in a form correlated with the images in an external storage device of an image retrieval apparatus. In retrieval of a desired image from the plurality of images that have been stored in the external storage device, a plurality of image features regarding one image are acquired by varying, over a predetermined range, each of the image features that have been stored in the external storage device. A fuzzy image search is conducted by calculating the degree of similarity between each of the plurality of images and a retrieval source image based upon the image features that have been acquired and the image features of the retrieval-source image.

FIELD OF THE INVENTION

[0001] This invention relates to an image retrieval method and apparatus for retrieving a desired image from a plurality of images.

BACKGROUND OF THE INVENTION

[0002] Various image retrieval methods have been proposed for retrieving a desired image from a database storing data representing a number of images. These methods can be classified broadly into two types, namely (1) a method in which non-image information such as keywords or dates of photography are correlated with images and retrieval is conducted based upon this non-image information, and (2) a method in which retrieval is conducted based upon the features (luminance or color-difference information, image frequency, histogram, etc.) of the images per se.

[0003] The latter method, which is referred to as a similar-image search, presents a certain image to a database and searches the database using a feature of the image as a search key. This method is advantageous in that a user who does not possess special knowledge concerning image processing can be provided with a search interface that is intuitively easy to understand.

[0004] When a search is conducted based upon the memory of the user, an accurate match between the actual image and the image remembered by the user is rare. It is desirable, therefore, to conduct a search by presenting the database with an image where the understanding is that the presented image may not be exactly the same as that being sought. With the usual similar-image search method, however, the desired image cannot be retrieved unless image brightness or color tone is reproduced accurately.

SUMMARY OF THE INVENTION

[0005] Accordingly, an object of the present invention is to make possible image retrieval that accurately reflects the user's intention when a similar-image search is conducted using a presented image that is based upon the user's memory.

[0006] Another object of the present invention is to make it possible to acquire a desired image easily even when the reproduction of image brightness or color tone is ambiguous.

[0007] According to the present invention, the foregoing object is attained by providing an image retrieval apparatus for retrieving a desired image from a plurality of stored images, comprising: storage means for storing the plurality of images and image features of each of the plurality of images in a form correlated with the images; feature calculation means for calculating image features of a retrieval source image; acquisition means for acquiring a plurality of image features regarding one image by varying, within a predetermined range, the image features that have been stored in the storage means; and retrieval means for performing image retrieval by calculating degree of similarity between each of the plurality of images and the retrieval source image based upon the image features acquired by the acquisition means and the image features calculated by the feature calculation means.

[0008] Preferably, the acquisition means varies a luminance component over N steps with regard to each image feature, thereby excluding effects ascribable to differences in conditions such as illumination. This makes it possible to perform a similar-image search that is more in line with human perception.

[0009] Preferably, the acquisition means varies a color-difference component over N stages with regard to each image feature, thereby making it possible to perform retrieval that takes into account the fuzziness human beings possess with regard to color.

[0010] Preferably, the retrieval means calculates degree of similarity between each image that has been stored in the storage means and the retrieval-source image using the plurality of image features acquired by the acquisition means, and adopts maximum degree of similarity as the degree of similarity between a particular image and the retrieval-source image. Because use is made of the maximum degree of similarity obtained while varying features, the features are essentially optimized.

[0011] Preferably, the acquisition means varies a luminance component or a color-difference component of an image feature in stepless fashion.

[0012] Preferably, the acquisition means is such that an operator can specify a number of steps over which image features are varied as well as the amount of change provided by each step. This makes it possible to conduct a fuzzy-image match search.

[0013] Further, according to the present invention, the foregoing object is attained by providing an image retrieval apparatus for retrieving a desired image from a plurality of stored images, comprising: storage means for storing the plurality of images and image features of each of the plurality of images in a form correlated with the images, wherein the image features have been acquired for each one of tiles obtained by dividing an image into a predetermined number of tiles; feature calculation means for dividing a retrieval-source image into a predetermined number of tiles and calculating image features for every tile; acquisition means for acquiring, with regard to each of the plurality of images that have been stored in the storage means, new image features by varying image features by an amount of change that differs for every tile; and retrieval means for performing image retrieval by calculating degree of similarity between each of the plurality of images and the retrieval source image based upon the image features acquired by the acquisition means and the image features calculated by the feature calculation means.

[0014] In accordance with this arrangement, the amount of change in a feature is made to differ for every tile, thereby making it possible to reduce the amount of calculation of degree of similarity in ambiguous retrieval.

[0015] Other features and advantages of the present invention will be apparent from the following description taken in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout the figures thereof.

BRIEF DESCRIPTION OF THE DRAWINGS

[0016] The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention.

[0017]FIG. 1 is a block diagram illustrating the configuration of a computer system for implementing image retrieval processing according to an embodiment of the present invention;

[0018]FIG. 2 is a diagram illustrating an example of a retrieval control screen according to this embodiment;

[0019]FIG. 3 is a flowchart useful in describing the details of image drawing processing at a step S161 in FIG. 9;

[0020]FIG. 4 is a diagram illustrating the division of an image for calculating a feature;

[0021]FIG. 5 is a flowchart useful in describing processing for calculating a feature according to this embodiment;

[0022]FIG. 6 is a flowchart useful in describing a method of calculating average values of R, G, B values on a per-area basis according to this embodiment;

[0023]FIG. 7 is a flowchart useful in describing a procedure for calculating the distances (degrees of similarity) between images according to this embodiment;

[0024]FIG. 8 is a flowchart useful in describing a procedure for selecting a similar image according to this embodiment; and

[0025]FIG. 9 is a flowchart illustrating the essentials of image retrieval processing according to this embodiment;

[0026]FIG. 10 is a flowchart useful in describing a procedure for calculating the distances between images according to another embodiment; and

[0027]FIG. 11 is a diagram useful in describing assignment of a coefficient α for ambiguous retrieval.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0028] Preferred embodiment of the present invention will now be described in detail in accordance with the accompanying drawings.

[0029]FIG. 1 is a block diagram illustrating the configuration of a computer system for implementing image retrieval processing according to an embodiment of the present invention.

[0030] In FIG. 1, a CPU 101 controls the overall system of this embodiment. A keyboard 102 is used together with a mouse 102 a to input operating information to the system. A display unit 103 is constituted by a CRT or liquid crystal panel. A ROM 104 and a RAM 105 construct the storage devices of the system and store a control program executed by the CPU 101 and data utilized by the CPU 101. A hard disk 106 and a floppy disk 107 construct external storage devices used as a file system for this system. The system further includes a printer 108.

[0031]FIG. 9 is a flowchart illustrating the essentials of image retrieval processing according to this embodiment.

[0032] In FIG. 9, the user draws a desired illustration (referred to simply as an “image” below) on the screen of the display unit 103 at step S161. Next, at step S162, a feature of the drawn image is calculated. This is followed by step S163, at which similar images are retrieved by a fuzzy match search based upon this feature. The similar images obtained by such retrieval are then displayed on the display unit 103 at step S164. It is then determined at step S165 whether the retrieval operation has been completed. Control returns to step S161 if retrieval is to continue and retrieval processing is exited if retrieval has been completed.

[0033] The details of steps 161 to 165 will be described below in greater detail.

[0034] [Step 161]

[0035] A retrieval control screen is displayed on the display unit 103, as illustrated in FIG. 2, at step S161.

[0036] As shown in FIG. 2, a drawing area 21 allows a user to draw a desired image by manipulating a drawing tool 22 (as by a mouse 102 a, by way of example). A color designating scroll bar 23 is for setting a desired color by designating the luminance of each of the color components red (R), green (G) and blue (B). A clear button 24 is for clearing the drawing area 21 (e.g., as by filling the entire area 21 with white). A search button 25 is for designating the start of a search for similar images. Retrieved-image display areas 26 a to 26 h display, in decreasing order of degree of similarity, images obtained as a result of a similar-image search (step S163), described below. A next-page button 27 is used when search results of a lower order are to be displayed in the retrieved-image display areas 26 a. An exit button 28 is used to exit this image retrieval processing.

[0037] After the user draws the illustration in the drawing area 21 at step S161, control proceeds to step S161 at an appropriate timing. The processing of step S161 will be described with reference to the flowchart of FIG. 3.

[0038]FIG. 3 is a flowchart useful in describing the details of image drawing processing at a step S161 in FIG. 9. Here x₀, y₀ represent variables stored as the immediately preceding position of the mouse pointer, and x₁, y₁ represent variables stored as the current position of the mouse pointer.

[0039] It is determined at step S31 whether the mouse 102 a has been moved by the user. Here it is determined whether the mouse pointer (which serves as the drawing tool 22 when it is placed inside the drawing area 21) has been moved by manipulation of the mouse 102 a. Control returns to step S31 if the mouse has not been moved. That is, step S31 forms a loop for monitoring movement of the mouse 102 a. If the mouse 102 a is moved, control proceeds to step S32.

[0040] It is determined at step S32 whether a mouse button on the mouse 102 a is being pressed. If the button is not being pressed, control proceeds to step S34, where the current position (x₁, y₁) of the mouse pointer is substituted for (x₀, y₀). Control then returns to step S31. As a result, the mouse pointer merely moves without drawing being performed.

[0041] On the other hand, if it is found at step S32 that the mouse button is being pressed, i.e., that a drag operation is in progress, control proceeds to step S33. Here a straight line connecting the immediately preceding position (x₀, y₀) of the mouse pointer and the current position (x₁,y₁) of the mouse pointer is drawn in a color decided by the color designating scroll bar 23.

[0042] This is followed by step S35, at which the current position (x₁, y₁) of the mouse pointer is substituted for (x₀, y₀) and the processing of FIG. 3 is exited. Step S161 ends at this time and control proceeds to step S162. Thus, control proceeds to the steps from S162 onward whenever the drawing of a new line is carried out. As seen from the user, therefore, it appears that search processing is executed automatically when an addition is made to the illustration by drawing.

[0043] If search processing were executed each time a very small straight line was drawn, processing speed would not be sufficient for follow-up and the apparatus would most likely become difficult to use. Accordingly, it is so arranged that the transition to step S162 is carried out whenever a straight line over a predetermined length is drawn.

[0044] [Step S162]

[0045] An image feature of an image that has been drawn in the drawing area 21 is calculated at step S162.

[0046] In the calculation of features according to this embodiment, an image is divided into a plurality of areas, the average values of respective ones of the R, G, B values in each area are calculated and the average values are adopted as the features. Calculation of features according to this embodiment will now be described in detail.

[0047]FIG. 4 is a diagram illustrating how an image is divided in order to calculate features. As shown in FIG. 4, the size of the drawing area 21 is W-number of pixels in the horizontal direction and H-number of pixels in the vertical direction. The drawing area 21 is divided into three areas horizontally and two areas vertically, for a total of six areas, and the areas are denoted by (0,0), (1,0), . . . , (2,1) in order starting from the upper left. The average values of respective ones of the R, G, B values of each of these areas are calculated, for a total of 18 numerical values, and constitute the features of the image desired to be retrieved.

[0048] The flow of processing for calculating the features mentioned above will be described further with reference to the flowchart of FIG. 5.

[0049]FIG. 5 is a flowchart useful in describing processing for calculating features according to this embodiment.

[0050] As shown in FIG. 5, a variable k is initialized to a value 0 at step S51, a variable j is initialized to a value 0 at step S52 and a variable i is initialized to a value 0 at step S53.

[0051] Next, at step S54, the average value of the R values of one area (i,j) in an image represented by the image drawin at the step S161 is substituted for the kth element d(k) of an array d. Further, the average value of the G values is substituted for d(k+1) and the average value of the B values is substituted for d(k+2).

[0052] It should be noted that the method of calculating the average values of the R, G, B values will be described later with reference to the flowchart of FIG. 6.

[0053] Next, k is incremented by 3 at step S55 and i is incremented by 1 at step S56. Next, i is compared with the value 2 at step S57 and control proceeds to step S58 if i is greater than 2 or returns to step S54 if it is not. Next, j is incremented by 1 at step S58, the value of j is compared with the value 1 at step S59 and processing is completed if j is greater than 1. If j is not greater than 1, control returns to step S53.

[0054] If processing is completed, the features of the image desired to be retrieved are stored in the array d( ), which has 18 elements. More specifically, 18 values, namely the average value of R in area (0,0), the average value of G in area (0,0), the average value of B in area (0,0), the average value of R in area (1, 0), the average value of B in area (2,1), are stored in the order mentioned.

[0055] In the example set forth above, the image is divided into six areas, as shown in FIG. 4, in order to calculate the features of the image. The variable i and the value 2 are compared at step S57, therefore, and the variable j and value 1 are compared at step S59. However, it is obvious that if the number of divisions of the image is changed, then the above-mentioned values also will change accordingly. In a case where the number of divisions is changed, the number of elements of the feature will not be 18 but will increase or decrease accordingly.

[0056] Further, according to this embodiment, the image is divided into six rectangles of equal area, as shown in FIG. 4. However, division into rectangular areas does not impose a limitation upon the invention; the image may be divided into more complicated shapes.

[0057]FIG. 6 is a flowchart useful in describing a method of calculating average values of R, G, B values on a per-area basis according to this embodiment. It is assumed here that the image data has been stored in three arrays R(X,Y), G(X,Y), B(X,Y), where 0≦X<W and 0≦Y<H hold and the upper left-hand corner of the image is taken as the origin (0,0). In the flow described below, average density is calculated in a partial area delimited by X0≦X<X1, Y0≦Y<Y1 and the average densities of R, G, B are returned to variables DR, DG, DB, respectively.

[0058] Since the area corresponding to area (i, j) at step S54 in FIG. 5 corresponds to

X0=W×i/3 , X1=W×(i+1)/3

Y0=H×j/2 , Y1=H×(j+1)/2

[0059] the flowchart shown in FIG. 6 is executed after the constants X0, X1, Y0, Y1 are initialized in the manner described above.

[0060] First, the variables DG, DG, DB are initialized to 0 at step S61, the variable Y is initialized to Y0 at step S62, and the variable x is initialized to X0 at step S63. Next, R(X,Y) is added to DR at step S64. Similarly, G(X,Y), B(X,Y) are added to DG and DB, respectively, at step S64.

[0061] The variable X is incremented by 1 at step S65 and the variable X and X1 are compared at step S66. Control proceeds to step S67 if they are equal but returns to step S64 if they are not. The variable Y is incremented by 1 at step S67 and the variable Y and Y1 are compared at step S68. Control proceeds to step S69 if they are equal but returns to step S63 if they are not. Thus, the sums of the color values of the respective ones of the color components of all pixels in the area (i,j) are obtained.

[0062] Next, at step S69, the variables DR, DG, DB are each divided by the number of pixels in the area [i.e., by (X1−X0)×(Y1−Y0)]. As a result, DR, DG, DB become the average densities obtained by dividing the pixel densities in the area by the number of pixels.

[0063] <Step S163>

[0064] Retrieval of similar images is performed at step S163 based upon the image feature described above.

[0065] It is assumed that image data representing N-number of images has been stored on the hard disk 106, that the features of each image have been calculated beforehand by a method the same as that described above, and that these features have been stored. The image data may be stored in a standard file format such as the well-known JPEG or FlashPix format or in a unique format in a so-called RDBMS (Relational Database Management System).

[0066] Further, it is assumed that the image features have been stored in a two-dimensional array D(n,i) having a size of N×18 (where 0≦n<N, 0≦i<18).

[0067] An image-to-image distance S(n), namely a distance between a submitted image and an nth image, is defined by the following equation: ${S(n)} = {\sum\limits_{i}\left\lbrack {{{D\left( {n,i} \right)} \times \alpha} - {(i)}} \right\rbrack^{2}}$

[0068] The smaller the image-to-image distance S(n), the higher the degree of similarity of the image is judged to be. Here α represents a coefficient that reflects the degree of ambiguity and takes on a value within appropriate limits. If the degree of similarity is calculated only at α=1.0, then the comparison will be an exact comparison in which there is no ambiguity. On the other hand, if the value of α is 0.8, for example, then the submitted image will be compared with darker images obtained by reducing the luminance of each image in the database by 20% overall. In a routine set forth below, the value of α is varied, the degree of similarity at each value of α is calculated, and the image for which the image-to-image distance S(n) is smallest (i.e., the image for which the degree of similarity is highest) is adopted. This means that a calculation of image-to-image distance that includes calculation of the optimum α is carried out.

[0069] In the search and retrieval of images according to this embodiment, first image-to-image distances S(n) (0≦n≦N) between the submitted image and all N images are calculated, then M (0<M<N) of these distances are selected in order starting from the smaller values of the image-to-image distance S(n). The method through which the image-to-image distance S(n) is calculated will be described below with reference to FIG. 7, and the procedure through which the M images are selected will be described with reference to FIG. 8.

[0070] The method of calculating image-to-image distance that reflects degree of ambiguity will be described with reference to FIG. 7, which is a flowchart useful in describing the procedure for calculating image-to-image distance (degree of similarity) according to this embodiment. It is assumed that the array α( ) has three elements and that α(0)=0.8, α(1)=1.0, α(2)=1.2 hold in this example. In this case, a fuzzy-match search having a degree of ambiguity of ±20% is conducted.

[0071] First, at step S71, the variable n is initialized to a value 0 at step S71, the variable j is initialized to a value 0 and S(n) is initialized to a sufficiently large value at step S72, and the variable i is initialized to a value 0 and S is initialized to a value 0 at step S73.

[0072] The square of the difference between D(n,i)×a(j) and d(i) is added to S at step S74, and the variable i is incremented by 1 at step S75. The variable i and the value 18 are compared at step S76, control proceeds to step S77 if the two are equal and returns to step S74 to repeat the processing of steps S74 and S75 if the two are not equal.

[0073] The above processing accumulates, and stores as S, the difference values for the 18 features at α(j) between the presented image and the images that have been registered in the database.

[0074] At step S77, S(n) and S are compared. Control proceeds to step S78 if S(n) is smaller; otherwise, control proceeds to step S79. Step S78 calls for S to be substituted for S(n), and the variable j is incremented by 1 at step S79. The variable j and value 3 are compared at step S7A, control proceeds to step S7B if the two are equal and returns to step S73 if the two are not equal. By virtue of this processing, the smallest value among the image-to-image distances using α(0) to α(2) is stored as S(n).

[0075] The variable n is incremented by the value 1 at step S7B, and the variable n is compared with N at step S7C. Control is exited if the two are equal; otherwise, control returns to step S72.

[0076] In accordance with the processing described above, the image-to-image distances between the presented image and all stored images are stored as the array S(n). Further, each image-to-image distance reflects a degree of ambiguity. From among the three image-to-image distances prevailing when a direction comparison is made and the three prevailing when a comparison is made after brightening (or darkening) an overall image by ±20%, the smallest distance is stored.

[0077] When images are compared with each other, emphasis is placed on the luminance and color-difference distributions within the images. If an image is bright (or dark) overall, then this can be ascribed merely to a difference in conditions such as illumination and can be ignored. The above-described algorithm which adopts the α for which S calculated at step S74 will be minimized makes it possible to conduct a similar-image search that more closely approximates human perception.

[0078] The above-described processing calculates the image-to-image distance S(n) between each stored image and the presented image while α is varied and retains the smallest value as the image-to-image distance S(n) between the particular stored image and the presented image.

[0079] Reference will now be had to FIG. 8 to describe processing for selecting M-number of distances in order starting from the smaller image-to-image distances S(n), which were obtained by the processing of FIG. 7, and storing the image numbers thereof in an array T( ).

[0080]FIG. 8 is a flowchart useful in describing a procedure for selecting similar images according to this embodiment.

[0081] In FIG. 8, the variable j is initialized to the value 0 at step S81, the variable i is initialized to the value 0 at step S82, and the variable min is initialized to the value 0 and L is made a sufficiently large value at step S83.

[0082] Next, the ith image-to-image distance S(i) and L are compared at step S84. Control proceeds to step S85 if S(i)<L holds; otherwise, control returns to step S86. The value i is substituted into the variable min and S(i) is substituted into L at step S85. Next, i is incremented by 1 at step S86.

[0083] This is followed by step S87, at which i and N are compared. Control proceeds to step S88 if the two are equal and control returns to step S83 if they are not equal. The value min is substituted into T(j) at step S88, and a sufficiently large value is substituted into S(min) at step S89. Next, j is incremented by 1 at step S8A, j and M are compared at step S8B, control is completed if they are equal and control returns to step S82 if they are not equal.

[0084] By virtue of the processing described above, image numbers are stored in the array T(j) (O≦j<M−1) in decreasing order of similarity to the submitted image.

[0085] <Step S164>

[0086]FIG. 9 is a diagram illustrating an example of a control screen displayed on the display unit 103 at step S24 in FIG. 2.

[0087] The specifics of processing at step S164 for displaying a list of similar images will be described in accordance with the control screen of FIG. 2.

[0088] As shown in FIG. 2, similar images retrieved by the above-described processing are displayed in thumbnail form in the areas 26 a to 26 h. An image corresponding to image number T(0), which is the number of the image having the highest degree of similarity [the smallest value of S(n)], is displayed in the area 26 a; an image corresponding to T(1) is displayed in the area 26 b; . . . ; and an image having the lowest degree of similarity [the largest value of S(n)] among these images is displayed in area 26 h.

[0089] The stored image data may be decoded and displayed on the screen as thumbnails in the areas 26 a to 26 h. If low-contrast icon data for icons, such as data in accordance with the standard image format FlashPix, is available, the icon data may be displayed.

[0090] It is so arranged that each icon image can be selected using the pointing device 102 a.

[0091] If the button 27 is clicked, the next set of candidates, namely images corresponding to T(8) to T(15), is displayed in the areas 26 a to 26 h in reduced form. This operation can be repeated up to the image that corresponds to T(M−1).

[0092] [Step S165]

[0093] It is determined at step S165 whether the exit button 28 has been clicked. Processing is exited if the button is clicked; otherwise, control returns to step S161 and drawing of the illustration continues.

[0094] [Other Embodiments]

[0095] Since the above-mentioned degree of ambiguity applies equal values for R, G, B, this corresponds to varying the luminance component. However, the component that affects degree of ambiguity is not limited to this and an arrangement may be adopted in which color-difference components are varied. In this case, it will suffice to express the image features by YUV instead of RGB and to vary individually the degrees of ambiguity relating to Y, U and V.

[0096] Further, in the foregoing embodiment, the coefficient α for which the smallest image-to-image distance is obtained is selected. However, this is illustrative and limitative. In the foregoing embodiment, there is a large amount of calculation because image-to-image distance is calculated equally with regard to the three values of α. When it is desired to reduce the amount of processing, however, an arrangement may be adopted in which α is selected randomly with regard to all tiles (partial areas) instead of calculating all three candidates and selecting the one having the smallest value. By selecting α randomly for each tile, the number of candidates can be increased over that when processing is executed upon fixing α at 1, and effects that approximate those of the foregoing embodiment can be obtained.

[0097] Processing in this case will be described with reference to FIGS. 10 and 11. FIG. 10 illustrates processing corresponding to steps S74 to S7A in the flowchart of FIG. 7.

[0098] Step S91 in FIG. 10 calls for α(0) to α(5) to be decided. In this embodiment, the image is divided into six areas, as shown in FIG. 4. Accordingly, the six coefficients α(0) to α(5) are assigned randomly to the six areas (0,0) to (2,1), as shown in FIG. 11. Step S91 is followed by step S92, at which the variable k is set to 0.

[0099] The image-to-image distance S is found through steps S93 to S95 using 18 features. Here the coefficient α is changed for every tile (partial area) in accordance with the aforesaid assignment. That is, the variable k is controlled in such a manner that α(0) to α(5) are selected periodically by the processing of steps S96, S97.

[0100] The image-to-image distance S obtained by the above-described processing is adopted as the image-to-image distance S(n) between an nth stored image and the presented image (step S98).

[0101] In the foregoing embodiment, the range of α is made ±20%. However, this may be increased or decreased depending upon image characteristics and operator preference. Alternatively, an arrangement may be adopted in which the range of α can be set at will by the operator.

[0102] In the processing shown in FIG. 7, a is changed in three steps. The similarity, however, can be set more in detail by increasing the number of steps of α. This is in the relation of the trade-off with the processing load. Therefore, it may be arranged so that the number of steps of α can be set by an operator.

[0103] The foregoing embodiment illustrates only one example of an algorithm for calculating α. Other algorithms may also be used. For example, in the description rendered above, α is varied over a number of steps and the one for which the shortest distance is obtained is selected. However, it may be so arranged that the most suitable value that prevails when α is varied in stepless fashion is adopted. That is, it will suffice to obtain the image-to-image distance by deciding the optimum α while α is in the process of being varied.

[0104] The present invention can be applied to a system constituted by a plurality of devices (e.g., a host computer, interface, reader, printer, etc.) or to an apparatus comprising a single device (e.g., a copier or facsimile machine, etc.).

[0105] Further, it goes without saying that the object of the invention is attained also by supplying a storage medium (or recording medium) storing the program codes of the software for performing the functions of the foregoing embodiments to a system or an apparatus, reading the program codes with a computer (e.g., a CPU or MPU) of the system or apparatus from the storage medium, and then executing the program codes. In this case, the program codes read from the storage medium implement the novel functions of the embodiments and the storage medium storing the program codes constitutes the invention. Furthermore, besides the case where the aforesaid functions according to the embodiments are implemented by executing the program codes read by a computer, it goes without saying that the present invention covers a case where an operating system or the like running on the computer performs a part of or the entire process in accordance with the designation of program codes and implements the functions according to the embodiments.

[0106] It goes without saying that the present invention further covers a case where, after the program codes read from the storage medium are written in a function expansion card inserted into the computer or in a memory provided in a function expansion unit connected to the computer, a CPU or the like contained in the function expansion card or function expansion unit performs a part of or the entire process in accordance with the designation of program codes and implements the function of the above embodiments.

[0107] Thus, as described above, the present invention makes it possible to perform image retrieval that accurately reflects the user's intention when a similar-image search is conducted using a presented image that is based upon the user's memory.

[0108] As many apparently widely different embodiments of the present invention can be made without departing from the spirit and scope thereof, it is to be understood that the invention is not limited to the specific embodiments thereof except as defined in the appended claims. 

What is claimed is:
 1. An image retrieval apparatus for retrieving a desired image from a plurality of stored images, comprising: storage means for storing the plurality of images and image features of each of the plurality of images in a form correlated with the images; feature calculation means for calculating image features of a retrieval source image; acquisition means for acquiring a plurality of image features regarding one image by varying, within a predetermined range, the image features that have been stored in said storage means; and retrieval means for performing image retrieval by calculating degree of similarity between each of the plurality of images and the retrieval source image based upon the image features acquired by the acquisition means and the image features calculated by the feature calculation means.
 2. The apparatus according to claim 1, wherein said acquisition means varies a luminance component over N steps with regard to each image feature.
 3. The apparatus according to claim 1, wherein said acquisition means varies a color-difference component over N steps with regard to each image feature.
 4. The apparatus according to claim 1, wherein said retrieval means calculates degree of similarity between each image that has been stored in said storage means and the retrieval-source image using the plurality of image features acquired by said acquisition means, and adopts maximum degree of similarity as the degree of similarity between a particular image and the retrieval-source image.
 5. The apparatus according to claim 1, wherein said acquisition means varies a luminance component of an image feature in stepless fashion.
 6. The apparatus according to claim 1, wherein said acquisition means varies a color-difference component of an image feature in stepless fashion.
 7. The apparatus according to claim 1, wherein said acquisition means has specifying means for allowing an operator to specify number of steps over which image features are varied as well as the amount of change provided by each step.
 8. An image retrieval apparatus for retrieving a desired image from a plurality of stored images, comprising: storage means for storing the plurality of images and image features of each of the plurality of images in a form correlated with the images, wherein the image features have been acquired for each one of tiles obtained by dividing an image into a predetermined number of tiles; feature calculation means for dividing a retrieval-source image into a predetermined number of tiles and calculating image features for every tile; acquisition means for acquiring, with regard to each of the plurality of images that have been stored in said storage means, new image features by varying image features by an amount of change that differs for every tile; and retrieval means for performing image retrieval by calculating degree of similarity between each of the plurality of images and the retrieval source image based upon the image features acquired by said acquisition means and the image features calculated by said feature calculation means.
 9. An image retrieval method for retrieving a desired image from storage means storing a plurality of images and image features of each of the plurality of images in a form correlated with the images, comprising: a feature calculation step of calculating image features of a retrieval source image; an acquisition step of acquiring a plurality of image features regarding one image by varying, within a predetermined range, the image features that have been stored in said storage means; and a retrieval step of performing image retrieval by calculating degree of similarity between each of the plurality of images and the retrieval source image based upon the image features acquired at said acquisition step and the image features calculated at said feature calculation step.
 10. The method according to claim 9, wherein said acquisition step varies a luminance component over N steps with regard to each image feature.
 11. The method according to claim 9, wherein said acquisition step varies a color-difference component over N steps with regard to each image feature.
 12. The method according to claim 9, wherein said retrieval step calculates degree of similarity between each image that has been stored in said storage means and the retrieval-source image using the plurality of image features acquired by said acquisition step, and adopts maximum degree of similarity as the degree of similarity between a particular image and the retrieval-source image.
 13. The method according to claim 9, wherein said acquisition step varies a luminance component of an image feature in stepless fashion.
 14. The method-according to claim 9, wherein said acquisition step varies a color-difference component of an image feature in stepless fashion.
 15. The method according to claim 9, wherein said acquisition step includes a specifying step of allowing an operator to specify number of steps over which image features are varied as well as the amount of change provided by each step.
 16. An image retrieval method for retrieving a desired image from a plurality of stored images, comprising: a storage step of storing the plurality of images and image features of each of the plurality of images in a form correlated with the images, wherein the image features have been acquired for each one of tiles obtained by dividing an image into a predetermined number of tiles; a feature calculation step of dividing a retrieval-source image into a predetermined number of tiles and calculating image features for every tile; an acquisition step of acquiring, with regard to each of the plurality of images that have been stored at said storage step, new image features by varying image features by an amount of change that differs for every tile; and a retrieval step of performing image retrieval by calculating degree of similarity between each of the plurality of images and the retrieval source image based upon the image features acquired at said acquisition step and the image features calculated at said feature calculation step.
 17. A storage medium storing a control program for causing a computer to execute image retrieval processing for retrieving a desired image from storage means storing a plurality of images and image features of each of the plurality of images in a form correlated with the images, said control program comprising: code of a feature calculation step of calculating image features of a retrieval source image; code of an acquisition step of acquiring a plurality of image features regarding one image by varying, within a predetermined range, the image features that have been stored in said storage means; and code of a retrieval step of performing image retrieval by calculating degree of similarity between each of the plurality of images and the retrieval source image based upon the image features acquired at said acquisition step and the image features calculated at said feature calculation step.
 18. A control program for causing a computer to execute image retrieval processing for retrieving a desired image from storage means storing a plurality of images and image features of each of the plurality of images in a form correlated with the images, said control program comprising: code of a feature calculation step of calculating image features of a retrieval source image; code of an acquisition step of acquiring a plurality of image features regarding one image by varying, within a predetermined range, the image features that have been stored in said storage means; and code of a retrieval step of performing image retrieval by calculating degree of similarity between each of the plurality of images and the retrieval source image based upon the image features acquired at said acquisition step and the image features calculated at said feature calculation step. 